1. Field of the Invention
This invention relates generally to computer graphics and, more particularly, to computer-produced display images with enhanced realism.
2. Description of the Related Art
Computers are being used to depict “virtual reality” worlds that do not exist anywhere except in a three-dimensional space maintained by the computer. Objects can “exist” in the virtual reality world and can move about in the coordinate space of the virtual reality. Such worlds are quite useful for simulations of real-world events where it is not practical to use real objects, such as laboratory investigations and event simulations, and are useful for entertainment purposes such as computer games and cinematic works (animation). The field of computer graphics strives to provide images depicting a computer's virtual reality world with greater realism.
A computer display image is specified as a combination of picture elements, each of which is called a pixel. The pixels in a display image specify a combination of red, blue, and green color information, much like a conventional television image is specified. Each pixel is associated with data specifying color intensity information for each red, blue, and green pixel of the image. The color intensity data is typically represented by an 8-bit data word. Most virtual reality simulations represent objects in a scene as data objects that have associated characteristics such as shape, size, position, and color. When an object is to be drawn, or rendered, on the computer display, a graphics processor determines an appropriate mixture of red, blue, and green pixel information for depiction of the image and generates video information for the correct mixture of red, blue, and green colors for each pixel. Display devices may have different-sized pixels with which images are produced. Many computer flat panel displays, for example, may have individual circular pixels each having a diameter of approximately 0.29 mm (0.0116 inch).
A computer graphics processor or display processor provides picture rendering processing for a computing device so that images created by a computer application program or other source of computer-generated pictures will be properly displayed. Computer graphics involves the creation, storage, and manipulation of models and images of objects based on pictorial synthesis of the objects from computer-based models. The creation, storage, and manipulation of the objects may occur in real time and may be an interactive process involving a computer user with an input device such as a keyboard, display mouse, controller, or touch-screen display panel. An important part of the picture rendering process involves image processing, in which the position and movement of objects in the images are carefully reproduced in two-dimensional and three-dimensional space.
For example, to determine what objects are being represented and what will be visible in the rendered or drawn image, a graphics processor maintains position information for all the pixels in a scene, representing the points of an object in the computer-drawn scene. Some of the position information is maintained in the form of a z-buffer for the image. The z-buffer for an image or frame of a scene is a set of data values, one data value for each pixel in the image, based on coordinates that determine the position of an object in the scene. That is, the z-buffer data is used to specify how far a pixel of an object is from the camera perspective. Thus, there is one z-buffer data entry for each pixel in a display image, and the graphics processor will maintain the data that specifies the position of that pixel in the computer model.
Each z-buffer data point may be represented by a data word, such as a 32-bit data word. See, for example, Section 1.5, “Hidden surface removal algorithm” at p. 22 in Advanced Animation and Rendering Techniques by A. Waft and M. Watt (ACM Press, 1992). The fidelity and detail of the computer image depends in part on the ability of the graphics processor to perform the necessary mathematical calculations on the object position information embodied in the z-buffer, and commercially available graphics processors are being continuously improved with respect to their mathematical processing capabilities and other image-processing power.
Computer-drawn virtual reality images typically have a different appearance from real images (such as photographs or video frames) of actual objects. One of the reasons for the discrepancy between computer images of virtual reality and images of actual physical objects is that virtual reality images do not realistically show expected depth of field information. Generally, depth of field refers to the changing amount of detail the human eye expects to perceive for objects in an image, depending on whether an object is close or far away from the viewer's perspective. For example, objects in a photograph that are farther away from the viewer's perspective will have fewer discernible image details and will be less distinct than objects that are closer to the viewer. Thus, far away objects have a “fuzzy” look and are not as sharp and clear as close up objects.
One of the reasons for the “cartoonish” appearance of most virtual reality images is because close up objects in the images typically are not sharper and have no more detail than far away objects, and far away objects do not appear any more fuzzy than close up objects. In other words, depth of field is constant throughout the virtual reality image. This is contrary to the appearance of “real world” images. Thus, a cartoon appearance results when discernible details of an object do not change in the expected manner when the object is closer or farther away in the image. A more realistic appearance would require close objects to have more detail and be sharper than objects that are farther away.
Some techniques have been used to provide enhanced depth of field information in computer image displays. For example, a stochastic sampling technique is used in distributed ray tracing to integrate depth of field information in a pre-rendered computer generated image. Another post-processing technique uses pixel intensity and z-buffer image depth data to determine the size and intensity distribution of the circle of confusion for each image point as it relates to its z-buffer value and the lens aperture being used. The intensity of each point in the output image is calculated as a weighted average of the intensities in the circles of confusion that overlap at each point. This technique is described by Potmesil and Chakravarty, referenced in Computer Graphics: Principles and Practice, Second Edition in C, by J. Foley et al. (Addison-Wesley Publishing Company, Inc., 1996) in Section 16.10 at 774-775. These techniques, however, are post-processing techniques and are not used to render images in a real time process. Thus, they are not suitable for any interactive use.
From the discussion above, it should be apparent that there is a need for realistic computer-drawn images with enhanced depth of field information. The present invention fulfills this need.